package com.smart.community.user.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * App端登录响应VO
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AppLoginVO extends LoginVO {
    private static final long serialVersionUID = 1L;
    /**
     * 是否为普通用户
     */
    private Boolean isNormalUser = true;
    /**
     * 是否业主
     */
    @JsonProperty("isOwnerUser")
    private boolean isOwnerUser = false;
    /**
     * 是否物业公司人员
     */
    @JsonProperty("isPropertyCompanyUser")
    private boolean isPropertyCompanyUser = false;
    /**
     * 是否超级管理员
     */
    @JsonProperty("isSuperAdmin")
    private boolean isSuperAdmin = false;
    
    // =============== 新增角色权限判断字段 ===============
    /**
     * 是否为保洁人员
     */
    @JsonProperty("cleaningStaff")
    private boolean cleaningStaff = false;
    /**
     * 是否为保洁管理
     */
    @JsonProperty("cleaningAdmin")
    private boolean cleaningAdmin = false;
    /**
     * 是否为安保人员
     */
    @JsonProperty("securityStaff")
    private boolean securityStaff = false;
    /**
     * 是否为安保管理
     */
    @JsonProperty("securityAdmin")
    private boolean securityAdmin = false;
    /**
     * 是否为停车人员
     */
    @JsonProperty("parkingStaff")
    private boolean parkingStaff = false;
    /**
     * 是否为停车管理
     */
    @JsonProperty("parkingAdmin")
    private boolean parkingAdmin = false;
    /**
     * 是否为物业人员
     */
    @JsonProperty("propertyStaff")
    private boolean propertyStaff = false;
    /**
     * 是否为物业管理
     */
    @JsonProperty("propertyAdmin")
    private boolean propertyAdmin = false;
    
    // =============== 手动添加setter方法 ===============
    
    public void setIsOwnerUser(boolean isOwnerUser) {
        this.isOwnerUser = isOwnerUser;
    }
    
    public void setIsPropertyCompanyUser(boolean isPropertyCompanyUser) {
        this.isPropertyCompanyUser = isPropertyCompanyUser;
    }
    
    public void setIsSuperAdmin(boolean isSuperAdmin) {
        this.isSuperAdmin = isSuperAdmin;
    }
}
